﻿@model Nop.Web.Models.Boards.SearchModel
@using Nop.Core.Domain.Forums
@{
    Layout = "_ColumnsOne";

    //title
    Html.AddTitleParts(T("Forum.PageTitle.Search").Text);
    //page class
    Html.AppendPageCssClassParts("html-forum-search-page");
}
<script asp-location="Footer">
    $(document).ready(function () {
        toggleAdvancedSearch();
        $('#adv').on('click', function () {
            toggleAdvancedSearch();
        });
    });
    function toggleAdvancedSearch() {
        if ($('#adv').is(':checked')) {
            $('#advanced-search').show();
        }
        else {
            $('#advanced-search').hide();
        }
    }
</script>
@await Component.InvokeAsync("ForumBreadcrumb")
<div class="page forum-search-page">
    <div class="page-title">
        <h1>@T("Forum.Search")</h1>
    </div>
    <div class="page-body">
        @await Component.InvokeAsync("Widget", new { widgetZone = PublicWidgetZones.BoardsSearchBeforeSearchform })
        <div class="search-input">
            <form asp-route="Search" method="get">
                <div class="fieldset">
                    <div class="form-fields">
                        <div class="basic-search">
                            <div class="inputs">
                                <label>@T("Forum.Search.SearchKeyword")</label>
                                <input type="text" name="searchterms" id="searchterms" class="forum-search-text" value="@Model.SearchTerms" />
                            </div>
                            <div class="inputs reversed">
                                <input @(Model.ShowAdvancedSearch ? "checked=\"checked\"" : "") id="adv" name="adv" type="checkbox" value="true">
                                <label for="adv">@T("Forum.Search.AdvancedSearch")</label>
                            </div>
                        </div>
                        <div class="advanced-search" id="advanced-search" style="display: none;">
                            <div class="inputs">
                                <label>@T("Forum.Search.SearchInForum")</label>
                                <select name="forumId" id="forumId" asp-items="@(new SelectList(Model.ForumList, "Value", "Text", Model.ForumIdSelected))"></select>
                            </div>
                            <div class="inputs">
                                <label>@T("Forum.Search.SearchWithin")</label>
                                <select name="within" id="within" asp-items="@(new SelectList(Model.WithinList, "Value", "Text", Model.WithinSelected))"></select>
                            </div>
                            <div class="inputs">
                                <label>@T("Forum.Search.LimitResultsToPrevious")</label>
                                <select name="limitDays" id="limitDays" asp-items="@(new SelectList(Model.LimitList, "Value", "Text", Model.LimitDaysSelected))"></select>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="buttons">
                    <input type="submit" class="button-1 forum-search-button" value="@T("Forum.SearchButton")" />
                </div>
            </form>
        </div>
        @await Component.InvokeAsync("Widget", new { widgetZone = PublicWidgetZones.BoardsSearchAfterSearchform })
        <div class="search-error">
            @Model.Error
        </div>
        <div class="search-results">
            @{
                var searchterms = Model.SearchTerms;
                string adv = null;
                string within = null;
                string limitDays = null;
                string forumId = null;

                if (Model.ShowAdvancedSearch)
                {
                    adv = "true";
                    within = Model.WithinSelected.ToString();
                    limitDays = Model.LimitDaysSelected.ToString();
                    forumId = Model.ForumIdSelected.ToString();
                }

                var pager = Html.Pager(new PagerModel
                {
                    PageSize = Model.TopicPageSize,
                    TotalRecords = Model.TopicTotalRecords,
                    PageIndex = Model.TopicPageIndex,
                    ShowTotalSummary = false,
                    RouteActionName = "Search",
                    RouteValues = new ForumSearchRouteValues { adv = adv, searchterms = searchterms, forumId = forumId, within = within, limitDays = limitDays },
                });
            }
            @await Component.InvokeAsync("Widget", new { widgetZone = PublicWidgetZones.BoardsSearchBeforeResults })
            @if (!string.IsNullOrEmpty(pager.ToHtmlString()))
            {
                <div class="pager upper">
                    @pager
                </div>
            }
            @if (Model.NoResultsVisisble)
            {
                <div class="no-result">
                    @T("Forum.SearchNoResultsText")
                </div>
            }
            <div class="forums-table-section topic-group">
                @if (Model.SearchResultsVisible)
                {
                    <div class="table-wrapper">
                        <table class="forum-table">
                            <colgroup>
                                <col width="1" />
                                <col />
                                <col width="1" />
                                @if (Model.AllowPostVoting)
                                {
                                    <col width="1" />
                                }
                                <col width="1" />
                            </colgroup>
                            <thead>
                                <tr>
                                    <th class="topic-details" colspan="2">
                                        @T("Forum.TopicTitle")
                                    </th>
                                    <th class="replies">
                                        @T("Forum.Replies")
                                    </th>
                                    <th class="views">
                                        @T("Forum.Views")
                                    </th>
                                    @if (Model.AllowPostVoting)
                                    {
                                        <th class="votes">
                                            @T("Forum.Votes")
                                        </th>
                                    }
                                    <th class="latest-post">
                                        @T("Forum.LatestPost")
                                    </th>
                                </tr>
                            </thead>
                            <tbody>
                                @foreach (var topic in @Model.ForumTopics)
                                {
                                    var topicType = "post";
                                    var topicText = string.Empty;
                                    switch (topic.ForumTopicType)
                                    {
                                        case ForumTopicType.Normal:
                                            topicType = "post";
                                            break;
                                        case ForumTopicType.Sticky:
                                            topicType = "sticky";
                                            topicText = $"[{T("Forum.Sticky")}]";
                                            break;
                                        case ForumTopicType.Announcement:
                                            topicType = "announcement";
                                            topicText = $"[{T("Forum.Announcement")}]";
                                            break;
                                        default:
                                            topicType = "post";
                                            break;
                                    }
                                    <tr>
                                        <td class="image">
                                            <div class="@topicType"></div>
                                        </td>
                                        <td class="topic-details">
                                            <div class="topic-title">
                                                @Html.RouteLink(topic.Subject, "TopicSlug", new { id = topic.Id, slug = topic.SeName })
                                                @if (!string.IsNullOrEmpty(topicText))
                                                {
                                                    <span class="topic-type">@topicText</span>
                                                }
                                            </div>
                                            @if (topic.NumPosts > Model.PostsPageSize)
                                            {
                                                <div class="topic-pager">
                                                    @Html.ForumTopicSmallPager(topic)
                                                </div>
                                            }
                                            <div class="topic-starter">
                                                @if (topic.CustomerId > 0)
                                                {
                                                    <label>@T("Forum.Author"):</label>
                                                    if (topic.AllowViewingProfiles)
                                                    {
                                                        @Html.RouteLink(topic.CustomerName, "CustomerProfile", new { Id = topic.CustomerId })
                                                    }
                                                    else
                                                    {
                                                        @topic.CustomerName
                                                    }
                                                }
                                            </div>
                                        </td>
                                        <td class="replies">
                                            @topic.NumReplies
                                        </td>
                                        <td class="views">
                                            @topic.Views
                                        </td>
                                        @if (Model.AllowPostVoting)
                                        {
                                            <td class="votes">
                                                @topic.Votes
                                            </td>
                                        }
                                        <td class="latest-post">
                                            @await Component.InvokeAsync("ForumLastPost", new { forumPostId = topic.LastPostId, showTopic = false })
                                        </td>
                                    </tr>
                                }
                            </tbody>
                        </table>
                    </div>
                }
            </div>
            @if (!string.IsNullOrEmpty(pager.ToHtmlString()))
            {
                <div class="pager lower">
                    @pager
                </div>
            }
            @await Component.InvokeAsync("Widget", new { widgetZone = PublicWidgetZones.BoardsSearchAfterResults })
        </div>
    </div>
</div>
